package com.fc.library.fresco

import android.content.Context
import android.graphics.drawable.Drawable
import android.net.Uri
import android.view.View
import android.widget.ImageView

/**
 * Created by fc on 2017/11/14.
 */
interface IFrescoImageLoader {

    /**
     * 初始化
     * @param context
     */
    fun init(context: Context)

    /**
     * 传入上下文context,在需要加载图片时必须最先调用
     */
    fun with(context: Context): IFrescoImageLoader

    /**
     * 获取view
     * @param context
     * @return
     */
    fun getView(context: Context): View

    /**
     * 设置占位图
     * @param drawable
     */
    fun setPlaceHolder(drawable: Drawable): IFrescoImageLoader

    /**
     * 设置占位图
     * @param id 占位图id
     * @return
     */
    fun setPlaceHolder(id: Int): IFrescoImageLoader

    /**
     * 图片转换
     * @param transform
     * @return
     */
    fun transform(transform: Transform):IFrescoImageLoader

    /**
     * 设置需要加载图片的Uri
     * @param uri
     * @return
     */
    fun load(uri:Uri): IFrescoImageLoader

    /**
     * 设置需要加载图片的Uri
     * @param id
     * @return
     */
    fun load(id:Int): IFrescoImageLoader

    /**
     * 设置需要加载小图的uri
     * @param uri
     * @return
     */
     fun small(uri: Uri): IFrescoImageLoader

    /**
     * 需要图片的大小
     * @param width
     * @param height
     * @return
     */
     fun resize(width: Int, height: Int): IFrescoImageLoader

    /**
     * 设置需要显示的scaleType
     * @param scaleType
     * @return
     */
     fun setScaleType(scaleType: ImageView.ScaleType): IFrescoImageLoader

    /**
     * 设置需要显示图片的view，在加载图片时必须最后调用
     * @param view
     * @return
     */
     fun into(view: View)

     fun wrapContent(): IFrescoImageLoader

    /**
     * 消毁
     */
    fun destroy()
}